package com.gzsxy.esjy.service.netty.mybatis.model;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)  // 搭配lombok chain 一个布尔值。如果为真，产生的setter返回的this而不是void
public class BaseEntity implements Serializable {

    //Java中，如果class实现了序列化接口，你没有加这一行，
    // eclipse会自动给warning，建议加上，否则，JVM会自动编译生成一个序列号，这样传输会造成反序列化失败。因为不同的JVM之间的序列化算法是不一样的，不利于程序的移植。
    private static final long serialVersionUID=1L;   //设置序列化的key

    @ApiModelProperty(value = "ID")
    @TableId(value = "id", type = IdType.ASSIGN_ID)  ////指定主键生成策略使用雪花算法（默认策略）
    private String id;

    @ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    @ApiModelProperty(value = "更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    @ApiModelProperty(value = "逻辑删除 1（true）已删除， 0（false）未删除")
    @TableField("is_deleted")  //指定字段在数据库中对应哪一列
    @TableLogic   //、逻辑删除
    private Boolean deleted;
}
